<#assign base=request.contextPath />
<!DOCTYPE html>
<html>
<head>
  <base href="${base}">	
  <meta charset="utf-8">
  <title>角色列表</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  <link rel="stylesheet" href="${base}/layuiadmin/layui/css/layui.css" media="all">
  <link rel="stylesheet" href="${base}/layuiadmin/style/admin.css" media="all">
  <link rel="stylesheet" href="${base}/css/my.css" media="all">
</head>

<body>
	<div class="layui-fluid">
		<div class="layui-card">
			<!-- 搜索栏 -->
			<div id="search-form" class="layui-form layui-card-header layuiadmin-card-header-auto">
				<div class="layui-form-pane">
					<div class="layui-form-item">
						<label class="layui-form-label" style="width: 88px;">角色名称</label>
						<div class="layui-input-inline" style="width: 200px;">
							<input type="text" name="Q_LIKES_roleName" class="layui-input" placeholder="角色名称" />
						</div>
						<div class="layui-input-inline">
							<div class="layui-btn-group">
								<button class="layui-btn" lay-submit lay-filter="LAY-search">
	            					<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i> 检索
	          					</button>
								<button class="layui-btn layui-btn-danger" id="LAY-reset" lay-filter="LAY-reset">
	            					<i class="layui-icon layui-icon-close layuiadmin-button-btn"></i> 清空
	          					</button>
							</div>
						</div>
					</div>
				</div>
			</div>			
			<!-- 表格 -->
			<div class="layui-card-body">
				<div style="padding-bottom:10px">
					<div class="layui-btn-group">
						<@grant key="role_add"><button class="layui-btn layui-btn-normal layuiadmin-btn-list" data-type="add"><i class="layui-icon layui-icon-add-1"></i> 添加</button></@grant>
						<@grant key="role_del"><button class="layui-btn layui-btn-danger layuiadmin-btn-list" data-type="batchdel"><i class="layui-icon layui-icon-delete"></i> 删除</button></@grant>
					</div>
					<div class="layui-btn-group">
						<button class="layui-btn layui-btn-primary layuiadmin-btn-list" data-type="expxls">导出选中</button>
						<button class="layui-btn layui-btn-primary layuiadmin-btn-list" data-type="expxlsAll">导出全部</button>
					</div>
				</div>
				<table id="LAY-table" lay-filter="LAY-table"></table>
			</div>
		</div>
	</div>

	<!-- 自定义模板 -->
  	<script type="text/html" id="tr-opts">
		{{# if(d.roleId!=1) { }}
		<@grant key="role_grant"><a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="grant"><i class="layui-icon layui-icon-auz"></i>授权</a></@grant>
    	<@grant key="role_edit"><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a></@grant>
        <@grant key="role_del"><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a></@grant>
		{{# } }}
  	</script>
  	
  	<script src="${base}/js/lib/jquery-1.11.3.min.js"></script>
  	<script src="${base}/js/commons.js"></script>
  	<script src="${base}/layuiadmin/layui/layui.js"></script>
  	<script>
  	layui.config({
    	base: '${base}/layuiadmin/' //静态资源所在路径
  	}).extend({
    	index: 'lib/index',
    	jwt: '{/}${base}/js/lib/jwt'
  	}).use(['index', 'table', 'jwt'], function(){
  		var $ = layui.$;
    	var table = layui.table;
    	var form = layui.form;
    	var jwt = layui.jwt;
    	
    	// 创建表格
    	var tbconfig = {
			elem: '#LAY-table',
			even: true,  //开启隔行背景
			//size: 'sm',  //小尺寸的表格
			height: 'full-180',  //容器高度
			cols: [[
				{checkbox: true},
				{title: '#', type:'numbers', align: 'center', width: 40}, 
				{title: '状态', align:'center', field: 'status', width: 60, templet: function(d) {
					if(d.status == 1) {
						return '<img title="激活" src="${base}/images/flag/customer/effective.png"/>';
					}
					return '<img title="禁用" src="${base}/images/flag/customer/invalid.png"/>';
				}},
				{title: '角色名称', align:'center', field: 'roleName', width: 120},  
				{title: '角色描述', align:'center', field: 'roleDesc'}, 
				{title: '操作', fixed: 'right', width: 210, align: 'center', toolbar: '#tr-opts'}
			]], 
			url: '${base}/system/role/list',
			headers: {
				'Authorization': jwt.getCookie('token')
			},
			page: true, 
			limits: [15, 30, 50, 100, 200], 
			limit: 15,  //默认采用25
			loading: true, 
			done: function (res, curr, count) {}
		};
        table.render(tbconfig);
    	
     	// 工具栏
        table.on('tool(LAY-table)', function(obj) {
            var data = obj.data;
            if(obj.event === 'del') {
                layer.confirm('您确定要删除行吗？', function(index) {
                	jwt.ajax({
        				url: '${base}/system/role/multiDel',
        				data: {
        					ids: data.roleId
        				},
        				success: function(json) {
        					table.reload('LAY-table');
                  			layer.msg('已删除');	
        				}        				
        			});
                })
            } else if(obj.event === 'edit') {
            	layer.open({
	          		type: 2,
	          		title: '编辑角色',
	          		content: '${base}/system/role/html/edit?roleId=' + data.roleId,
	          		maxmin: true,
	          		area: ['550px', '350px'],
	          		btn: ['确定', '取消'],
	          		yes: function(index, layero){
	            		//点击确认触发 iframe 内容中的按钮提交
	            		var submit = layero.find('iframe').contents().find("#LAY-form-submit");
	            		submit.click();
	          		}
	        	}); 
            } else if(obj.event == 'grant') {
            	layer.open({
	          		type: 2,
	          		title: '角色授权',
	          		content: '${base}/system/role/html/grant?roleId=' + data.roleId,
	          		maxmin: true,
	          		area: ['500px', '500px'],
	          		btn: ['确定', '取消'],
	          		yes: function(index, layero){
	            		//点击确认触发 iframe 内容中的按钮提交
	            		var submit = layero.find('iframe').contents().find("#LAY-form-submit");
	            		submit.click();
	          		}
	        	}); 
            }
        });
    
    	//监听搜索
    	form.on('submit(LAY-search)', function(data) {
      		var field = data.field;      
      		//执行重载
      		table.reload('LAY-table', {
        		where: field,
        		page: {curr: 1}
      		});
    	});
    	//重置
    	$('#LAY-reset').click(function() {
    		$('#search-form :input').val('');
    	});
    	
    	//获得导出字段
    	getExportCols = function(tbconfig) {
    		var colIds = [];
    		var colNames = [];
    		var cols = tbconfig.cols[0];
    		for(var i=0; i<cols.length; i++) {
    			// 如果存在field字段
    			if(cols[i].javaRender) {
    				colIds.push("javaRender" + cols[i].javaRender);
    				colNames.push(cols[i].title);
    			} else if(cols[i].ref) {
    				colIds.push(cols[i].ref);
    				colNames.push(cols[i].title);
    			} else if(cols[i].field) {
    				colIds.push(cols[i].field);
    				colNames.push(cols[i].title);
    			}
    		}
    		return {
    			colIds: colIds,
    			colNames: colNames
    		};
    	}
    	
    	// toolbar工具栏
    	var active = {
      		batchdel: function() {
        		var checkStatus = table.checkStatus('LAY-table'),
        			checkData = checkStatus.data; //得到选中的数据

        		if(checkData.length === 0) {
        			layer.msg('请选择数据');
          			return false;
        		}
        			
        		var idArr = [];
        		for(var i=0; i<checkData.length; i++) {
        			idArr.push(checkData[i].roleId);
        		}
        		layer.confirm('确定删除吗？', function(index) {
        			jwt.ajax({
        				url: '${base}/system/role/multiDel',
        				data: {
        					ids: idArr.join(',')
        				},
        				success: function(json) {
        					table.reload('LAY-table');
                  			layer.msg('已删除');	
        				}        				
        			});          			
        		});
      		},
	      	add: function() {
	        	layer.open({
	          		type: 2,
	          		title: '增加角色',
	          		content: '${base}/system/role/html/add',
	          		maxmin: true,
	          		area: ['550px', '350px'],
	          		btn: ['确定', '取消'],
	          		yes: function(index, layero){
	            		//点击确认触发 iframe 内容中的按钮提交
	            		var submit = layero.find('iframe').contents().find("#LAY-form-submit");
	            		submit.click();
	          		}
	        	}); 
      		},
      		// 导出excel，选中
      		expxls: function() {
      			var checkStatus = table.checkStatus('LAY-table');
    			var checkData = checkStatus.data; //得到选中的数据
	    		if(checkData.length === 0) {
	    			layer.msg('请至少选择一条数据！');
	      			return false;
	    		}	    			
	    		var idArr = [];
	    		for(var i=0; i<checkData.length; i++) {
	    			idArr.push(checkData[i].roleId);
	    		}
      			// ajax下载
      			var cols = getExportCols(tbconfig);
      			var data = {
   					ids: idArr.join(','),
   					colIds: cols.colIds.join(','),
   					colNames: cols.colNames.join(',')
   				};
      			ajax_download('${base}/system/role/html/exportSel', data, $);
      		},
      		// 导出全部
      		expxlsAll: function() {
      			// ajax下载
      			var cols = getExportCols(tbconfig);
      			var data = {
	      			// 带上查询条件
   					colIds: cols.colIds.join(','),
   					colNames: cols.colNames.join(',')
   				};
      			ajax_download('${base}/system/role/html/exportAll', data, $);
      		}
   		}; 

		$('.layui-btn.layuiadmin-btn-list').on('click', function(){
      		var type = $(this).data('type');
      		active[type] ? active[type].call(this) : '';
		});

  	});
  </script>
</body>
</html>
